<script setup lang="ts">
// 2. 定义属性接收父组件传值
// 设置默认值
withDefaults(
  defineProps<{
    money: number
    car?: string
    house?: string
  }>(), {
  car: '奥拓',
  house: '汤臣一品'
}
)

// 3. 定义通知父组件的方法
const emit = defineEmits<{
  // 自定义事件
  (e: 'changeMoney', money: number): void
  (e: 'changeCar', car: string): void
  (e: 'changeHouse', house: string): void
}>()

</script>

<template>
  <div class="son">
    子组件
    <p>爸爸的钱包: {{ money }}元</p>
    <!-- 发射自定义事件 -->
    <button @click="emit('changeMoney', 20000)">搬砖一个月</button>
    <hr>
    <p>爸爸的车: {{ car }}</p>
    <button @click="emit('changeCar', '问界M9')">换车</button>
    <hr>
    <p>爸爸的房: {{ house }}</p>
    <button @click="emit('changeHouse', 'CBD大平层')">换房</button>
  </div>
</template>

<style scoped>
.son {
  width: 400px;
  height: 300px;
  border: 10px solid pink;
}
</style>